*Election Results
*https://dadosabertos.tse.jus.br/dataset/?groups=resultados
*Download in 23 May 2025

else if "`c(username)'" == "Administrador" { 
	global ROOT "C:\Users\Administrador\Meu Drive\00 Pesquisa\# Gender Gap Turnout"
}


if "`c(username)'" == "vitor" {
    global ROOT "G:\.shortcut-targets-by-id\1Gn0Qh8ehM2EKoEEeJt9JcaQDco2Xt0O2\# Gender Gap Turnout"
}
                 

cd "${ROOT}\Dados e Análise\TSE Data"

*Including 2008 only because of the reelection variable
foreach ano in 2008 2012 2016 2020 2024 {
    import delimited "${ROOT}\Dados e Análise\TSE Data\Results\votacao_candidato_munzona_`ano'_BRASIL.csv", delimiter(";") clear
	keep if ds_cargo == "Prefeito" 
	drop if ds_situacao_candidatura == "INAPTO"
	keep ano_eleicao nr_turno sg_uf sg_ue cd_municipio nm_municipio ds_cargo sq_candidato nm_candidato ///
	nm_urna_candidato sg_partido qt_votos_nominais ds_sit_tot_turno ds_situacao_candidatura
	collapse(sum) qt_votos_nominais, by(sq_candidato cd_municipio sg_uf nr_turno ano_eleicao nm_candidato)
	rename nr_turno turno
	format sq_candidato %15.0f
    save "${ROOT}\Dados e Análise\TSE Data\Results\votacao_candidato_munzona_`ano'_BRASIL.dta", replace
}

cd "${ROOT}\Dados e Análise\TSE Data\"
use "Results\votacao_candidato_munzona_2008_BRASIL.dta", clear
append using "Results\votacao_candidato_munzona_2012_BRASIL.dta"
append using "Results\votacao_candidato_munzona_2016_BRASIL.dta"
append using "Results\votacao_candidato_munzona_2020_BRASIL.dta"
append using "Results\votacao_candidato_munzona_2024_BRASIL.dta"

*Generate rank variable
bysort cd_municipio turno ano_eleicao (qt_votos_nominais): ///
    egen rank_votos = rank(-qt_votos_nominais) 

*Generate an identifier for the same candidate across different elections
*As of 2024, the TSE has stopped providing candidates’ CPF numbers
*The variable "sq_candidato" changes every year, even for the same candidate, making it unsuitable for creating a reelection variable
gen auxiliar_candidato = nm_candidato
replace auxiliar_candidato = subinstr(auxiliar_candidato, "Â", "A", .)
replace auxiliar_candidato = subinstr(auxiliar_candidato, "Á", "A", .)
replace auxiliar_candidato = subinstr(auxiliar_candidato, "À", "A", .)
replace auxiliar_candidato = subinstr(auxiliar_candidato, "Ã", "A", .)
replace auxiliar_candidato = subinstr(auxiliar_candidato, "Ê", "E", .)
replace auxiliar_candidato = subinstr(auxiliar_candidato, "É", "E", .)
replace auxiliar_candidato = subinstr(auxiliar_candidato, "È", "E", .)
replace auxiliar_candidato = subinstr(auxiliar_candidato, "Í", "I", .)
replace auxiliar_candidato = subinstr(auxiliar_candidato, "Ì", "I", .)
replace auxiliar_candidato = subinstr(auxiliar_candidato, "Î", "I", .)
replace auxiliar_candidato = subinstr(auxiliar_candidato, "Ô", "O", .)
replace auxiliar_candidato = subinstr(auxiliar_candidato, "Ó", "O", .)
replace auxiliar_candidato = subinstr(auxiliar_candidato, "Ò", "O", .)
replace auxiliar_candidato = subinstr(auxiliar_candidato, "Õ", "O", .)
replace auxiliar_candidato = subinstr(auxiliar_candidato, "Ú", "U", .)
replace auxiliar_candidato = subinstr(auxiliar_candidato, "Ù", "U", .)
replace auxiliar_candidato = subinstr(auxiliar_candidato, "Û", "U", .)

gen auxiliar_municipio = cd_municipio
tostring auxiliar_municipio, replace force

gen concat = auxiliar_candidato + auxiliar_municipio
egen codigo_candidato = group(concat)

drop auxiliar_municipio auxiliar_candidato

duplicates drop concat ano_eleicao turno, force
*Duplicates were checked and refer to the same candidate, with minor changes in variables that are not relevant to the research between one observation and another for the same candidate.

*Generate election and reelection variable
*Reelection is considered only when it occurs consecutively
*We do not have many prior years available, and assuming they were not elected before would introduce bias
bysort cd_municipio ano_eleicao: egen segundo_turno_mun = max(turno == 2)	
gen eleito_primeiro_turno = 1 if rank_votos == 1 & segundo_turno_mun != 1
replace eleito_primeiro_turno = 0 if eleito_primeiro_turno == .
gen eleito_segundo_turno = 1 if rank_votos == 1 & segundo_turno_mun == 1
replace eleito_segundo_turno = 0 if eleito_segundo_turno == .
gen eleito = 1 if eleito_primeiro_turno == 1 | eleito_segundo_turno == 1
sort sq_candidato ano_eleicao turno
replace eleito = 1 if eleito == . & ano_eleicao[_n+1] == ano_eleicao + 4 & sq_candidato == sq_candidato[_n+1]
replace eleito = 0 if eleito == .

sort cd_municipio codigo_candidato ano_eleicao turno
gen candidatura = 1
gen reeleicao_tentativa = 1 if ano_eleicao == ano_eleicao[_n-1] + 4 ///
    & codigo_candidato == codigo_candidato[_n-1] & eleito[_n-1] == 1
replace reeleicao_tentativa = 1 if ano_eleicao == ano_eleicao[_n-2] + 4 ///
    & codigo_candidato == codigo_candidato[_n-2] & eleito[_n-2] == 1
replace reeleicao_tentativa = 1 if ano_eleicao == ano_eleicao[_n-3] + 4 ///
    & codigo_candidato == codigo_candidato[_n-3] & eleito[_n-3] == 1
	
	
sort cd_municipio codigo_candidato ano_eleicao turno
gen reeleicao_sucesso = 1 if ano_eleicao == ano_eleicao[_n-1] + 4 ///
    & codigo_candidato == codigo_candidato[_n-1] & eleito[_n-1] == 1 & eleito == 1
replace reeleicao_sucesso = 1 if ano_eleicao == ano_eleicao[_n-2] + 4 ///
    & codigo_candidato == codigo_candidato[_n-2] & eleito[_n-2] == 1 & eleito == 1
replace reeleicao_sucesso = 1 if ano_eleicao == ano_eleicao[_n-3] + 4 ///
    & codigo_candidato == codigo_candidato[_n-3] & eleito[_n-3] == 1 & eleito == 1
	
replace reeleicao_tentativa = 0 if reeleicao_tentativa == .
replace reeleicao_sucesso = 0 if reeleicao_sucesso == .

drop if ano_eleicao == 2008
sort cd_municipio ano_eleicao turno

rename sg_uf uf 
gen str20 regiao = ""
replace regiao = "Norte" if uf == "AC" | uf == "AP" | uf == "AM" | uf == "PA" | uf == "RO" | uf == "RR" | uf == "TO"
replace regiao = "Nordeste" if uf == "AL" | uf == "BA" | uf == "CE" | uf == "MA" | uf == "PB" | uf == "PE" | uf == "PI" | uf == "RN" | uf == "SE"
replace regiao = "Centro-Oeste" if uf == "DF" | uf == "GO" | uf == "MT" | uf == "MS"
replace regiao = "Sudeste" if uf == "ES" | uf == "MG" | uf == "RJ" | uf == "SP"
replace regiao = "Sul" if uf == "PR" | uf == "RS" | uf == "SC"

save "election_results.dta", replace

erase "Results\votacao_candidato_munzona_2008_BRASIL.dta"
erase "Results\votacao_candidato_munzona_2012_BRASIL.dta"
erase "Results\votacao_candidato_munzona_2016_BRASIL.dta"
erase "Results\votacao_candidato_munzona_2020_BRASIL.dta"
erase "Results\votacao_candidato_munzona_2024_BRASIL.dta"
